<template>
  <div class="news">
    <!-- 导航区 -->
    <ul>
      <li v-for="news in newList" :key="news.id">
        <!-- 第一种写法 -->
        <!--        <router-link :to="`/news/detail?id=${news.id}&title=${news.title}&content=${news.content}`">-->
        <!--          {{ news.title }}-->
        <!--        </router-link>       -->

        <button @click="showNewsDetail(news)">查看新闻</button>
        <!-- 第二种写法 -->
        <router-link
            :to="{
              path:`/news/detail`,
              query: {
                id: news.id,
                title: news.title,
                content: news.content
              }
            }">
          {{ news.title }}
        </router-link>
      </li>
    </ul>

    <!-- 展示区 -->
    <div class="news-content">
      <router-view/>
    </div>
  </div>
</template>

<script setup lang="ts" name="News">
import {reactive} from "vue";
import {useRouter} from "vue-router";

/**
 * 路由器
 */
const router = useRouter();

/**
 * 新闻列表
 */
const newList = reactive([
  {id: '1', title: '新闻001', content: '新闻001的内容'},
  {id: '2', title: '新闻002', content: '新闻002的内容'},
  {id: '3', title: '新闻003', content: '新闻003的内容'},
  {id: '4', title: '新闻004', content: '新闻004的内容'},
]);

/**
 * 展示新闻详情
 */
const showNewsDetail = (news: any) => {
  router.push({
    path: `/news/detail`,
    query: {
      id: news.id,
      title: news.title,
      content: news.content
    }
  })
}
</script>

<style scoped>
/* 新闻 */
.news {
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  height: 100%;
}

.news ul {
  margin-top: 30px;
  /*  list-style: none;*/
  padding-left: 10px;
}

.news li::marker {
  color: #64967E;
}

.news li > a {
  font-size: 18px;
  line-height: 40px;
  text-decoration: none;
  color: #64967E;
  text-shadow: 0 0 1px rgb(0, 84, 0);
}

.news-content {
  width: 70%;
  height: 90%;
  border: 1px solid;
  margin-top: 20px;
  border-radius: 10px;
}
</style>
